var selectedLanmuNode;
var selectedLanmuNodePath = '/-1/0';

var selectedLanmuNodePathMap = new HashMap();
selectedLanmuNodePathMap.put(selectedLanmuNodePath, selectedLanmuNodePath);

/**
 * 设置默认展开的节点path
 * 
 * @param {}
 *            path
 */
function setLanmuPath(path) {
	selectedLanmuNodePathMap.put(path, path);
}

/**
 * 内容信息查询
 */
function queryInfo(hiddenStatus) {
	var queryForm;

	if (hiddenStatus) {
		queryForm = new Ext.FormPanel({
					labelWidth : 75, // label settings here cascade unless
					// overridden
					frame : false,
					bodyStyle : 'padding:5px 5px 0',
					width : 400,
					defaults : {
						width : 300
					},
					defaultType : 'textfield',

					items : [{
								fieldLabel : '信息标题',
								id : 'bt',
								value : Ext.get('qname').dom.value,
								name : 'bt'
							}, {
								xtype : 'hidden',
								id : 'lmid',
								value : Ext.get('qdirecid').dom.value,
								name : 'lmid'
							}, {
								fieldLabel : '所属栏目',
								id : 'lm',
								readOnly : true,
								name : 'lm',
								value : Ext.get('qdirec').dom.value,
								listeners : {
									render : function(p) {
										p.getEl().on('click', function(p) {
													selectlanmu('lmid', 'lm');
												});
									}
								}
							}, {
								xtype : 'hidden',
								id : 'sp0',
								value : Ext.get('qstatus').dom.value,
								name : 'sp0'
							}, new Ext.form.DateField({
										id : 'date',
										name : 'date',
										format : 'Y-m-d',
										value : Ext.get('qdate').dom.value,
										fieldLabel : '创建时间'
									})]
				});
	} else {
		queryForm = new Ext.FormPanel({
			labelWidth : 75, // label settings here cascade unless
			// overridden
			frame : false,
			bodyStyle : 'padding:5px 5px 0',
			width : 400,
			defaults : {
				width : 300
			},
			defaultType : 'textfield',

			items : [{
						fieldLabel : '信息标题',
						id : 'bt',
						value : Ext.get('qname').dom.value,
						name : 'bt'
					}, {
						xtype : 'hidden',
						id : 'lmid',
						value : Ext.get('qdirecid').dom.value,
						name : 'lmid'
					}, {
						fieldLabel : '所属栏目',
						id : 'lm',
						readOnly : true,
						name : 'lm',
						value : Ext.get('qdirec').dom.value,
						listeners : {
							render : function(p) {
								p.getEl().on('click', function(p) {
											selectlanmu('lmid', 'lm');
										});
							}
						}
					}, new Ext.form.RadioGroup({
						fieldLabel : '发布状态',
						items : [new Ext.form.Radio({ // 三个必须项
							id : 'sp0',
							// checked : true, //
							// 设置当前为选中状态,仅且一个为选中.
							boxLabel : '已发布', // Radio标签
							name : 'sp', // 用于form提交时传送的参数名
							inputValue : '1', // 提交时传送的参数值
							checked : (Ext.get('qstatus').dom.value == '' || Ext
									.get('qstatus').dom.value == '1')
									? 'checked'
									: '',
							listeners : {
								check : function(checkbox, checked) { // 选中时,调用的事件
									if (checked) {

									}
								}
							}
						}), new Ext.form.Radio({ // 三个必须项
							id : 'sp1',
							// checked : true, //
							// 设置当前为选中状态,仅且一个为选中.
							boxLabel : '待审核', // Radio标签
							name : 'sp', // 用于form提交时传送的参数名
							inputValue : '0', // 提交时传送的参数值
							checked : (Ext.get('qstatus').dom.value == '0')
									? 'checked'
									: '',
							listeners : {
								check : function(checkbox, checked) { // 选中时,调用的事件
									if (checked) {

									}
								}
							}
						}), new Ext.form.Radio({ // 以上相同
							id : 'sp2',
							boxLabel : '未通过',
							name : 'sp',
							inputValue : '-1',
							checked : (Ext.get('qstatus').dom.value == '-1')
									? 'checked'
									: '',
							listeners : {
								check : function(checkbox, checked) {
									if (checked) {

									}
								}
							}
						})]
					}), new Ext.form.DateField({
								id : 'date',
								name : 'date',
								format : 'Y-m-d',
								value : Ext.get('qdate').dom.value,
								fieldLabel : '创建时间'
							})]
		});
	}

	var win = new Ext.Window({
		renderTo : Ext.getBody(),
		layout : 'fit',
		width : 450,
		height : 250,
		title : '信息查询',
		resizable : false,
		plain : true,
		modal : true,

		items : [queryForm],

		buttons : [{
			text : '查 询',
			handler : function() {
				if (queryForm.getForm().isValid()) {
					Ext.get('qdirec').dom.value = Ext.get('lm').dom.value;
					Ext.get('qdirecid').dom.value = Ext.get('lmid').dom.value;
					Ext.get('qname').dom.value = Ext.get('bt').dom.value;
					if (hiddenStatus) {
						Ext.get('qstatus').dom.value = Ext.get('sp0').dom.value;
					} else {
						if (Ext.get('sp0').dom.checked) {
							Ext.get('qstatus').dom.value = Ext.get('sp0').dom.value;
						} else if (Ext.get('sp1').dom.checked) {
							Ext.get('qstatus').dom.value = Ext.get('sp1').dom.value;
						} else if (Ext.get('sp2').dom.checked) {
							Ext.get('qstatus').dom.value = Ext.get('sp2').dom.value;
						}
					}
					Ext.get('qdate').dom.value = Ext.get('date').dom.value;
					handleQuery(win);
				}
			}
		}, {
			text : '关 闭',
			handler : function() {
				win.close();
			}
		}]
	});
	win.show(this);
}

/**
 * 选择新闻栏目
 * 
 * @param {}
 *            oid
 * @param {}
 *            oname
 */
function selectlanmu(oid, oname) {
	var selectlanmutree = new Ext.tree.TreePanel({
				id : 'selectlanmutree',
				// singleExpand : true,
				width : 270,
				height : 300,
				frame : false,
				checkModel : 'single',
				// onlyLeafCheckable : true,
				border : false,
				autoScroll : true,
				animate : true,
				rootVisible : false,
				loader : new Ext.tree.TreeLoader({
							dataUrl : context
									+ '/app/info.do?method=directorytree&id=0',
							baseParams : {
				// active : 'purview4GUSelectForm'
							}
						}),
				root : new Ext.tree.AsyncTreeNode({
							allowChildren : true,
							expanded : true,
							text : 'root', // 节点名称
							draggable : false, // 是否支持拖动
							id : '-1'
						}),
				listeners : {
					'click' : function(node) {
						if (node.isExpanded()) {
							node.collapse();
						} else {
							node.expand();
						}
					},
					'checkchange' : function(node, checked) {
						if (checked) {
							if (selectedLanmuNode) {
								selectedLanmuNode.attributes.checked = false;
								selectedLanmuNode.ui.checkbox.checked = false;
							}

							selectedLanmuNode = node;
						}
					},
					'load' : function(node) {
						if (hasSelectedLanmu(Ext.get(oid).dom.value, node)) {
							node.attributes.checked = true;
							node.ui.checkbox.checked = true;
							selectedLanmuNode = node;
						}
					}
				}
			});

	var lanmunodespath = selectedLanmuNodePathMap.values();
	for (var i = 0; i < lanmunodespath.length; i++) {
		/* 展开指定节点 */
		selectlanmutree.expandPath(lanmunodespath[i]);
	}

	var win = new Ext.Window({
				id : 'selectlanmuwin',
				renderTo : Ext.getBody(),
				layout : 'fit',
				width : 300,
				height : 400,
				title : '选择所属栏目',
				resizable : true,
				plain : true,
				modal : true,

				items : [selectlanmutree],

				buttons : [{
							text : '确 定',
							handler : function() {
								handleSelectLanmu(oid, oname);
							}
						}, {
							text : '清 空',
							handler : function() {
								Ext.get(oname).dom.value = '';
								Ext.get(oid).dom.value = '';
								win.close();
							}
						}, {
							text : '关 闭',
							handler : function() {
								win.close();
							}
						}]
			});
	win.show(this);
}

/**
 * 已经选择栏目
 * 
 * @param {}
 *            oid
 * @param {}
 *            oname
 */
function handleSelectLanmu(oid, oname) {
	var names = '', ids = '', types = '';
	var selNodes = Ext.getCmp('selectlanmutree').getChecked();
	Ext.each(selNodes, function(node) {
				var idpath = node.getPath('id');
				/* 确保初始化展开一个节点 */
				selectedLanmuNodePathMap.clear();
				selectedLanmuNodePathMap.put(idpath, idpath);

				var path = node.getPath('text');
				path = getNodePathName(path);

				if (names.length > 0) {
					names += ',';
					ids += ',';
					types += ',';
				}
				// names += node.text;
				names += path;
				ids += node.id;
			});
	try {
		Ext.get(oid).dom.value = ids;
		Ext.get(oname).dom.value = names;
	} catch (error) {
		alert('请检查返回值接收表单域[id:' + oid + ',name:' + oname + ']的有效性');
	}

	Ext.getCmp('selectlanmuwin').close();
}

function getNodePathName(path) {
	var pathstr = path.split('/');

	if (pathstr.length > 3) {
		var pathName = "";

		for (var i = 3; i < pathstr.length; i++) {
			pathName += pathstr[i];

			if (i < pathstr.length - 1) {
				pathName += '/';
			}
		}

		return pathName;
	}

	return '';
}

/*
 * , bbar : [{ text : "选 择", iconCls : 'icon-pselectuser', handler : function() {
 * var names = '', ids = '', types = '', selNodes = Ext
 * .getCmp('selectlanmutree').getChecked(); Ext.each(selNodes, function(node) {
 * if (names.length > 0) { names += ','; ids += ','; types += ','; } names +=
 * node.text; ids += node.attributes.realid; types += node.attributes.type; }); } }, {
 * text : "取 消", iconCls : 'icon-punchk', handler : function() { } }]
 */

function hasSelectedLanmu(defaultIds, node) {
	if ((defaultIds == null || defaultIds == '') && selectedLanmuNode) {
		return selectedLanmuNode.id == node.id;
	} else if (defaultIds) {
		return defaultIds == node.id;
	}

	return false;
}